const express = require('express')
const router = express.Router()
const {insertFilm,
   findFilm,
   delFilm,
   updateFilm,
   findFilmByKw,
   findFilmByType,
   findFilmByPage} = require('../controls/filmControl')

//1.增加商品
/**
 * @api {post} /admin/film/add   添加资源
 * @apiName add
 * @apiGroup Film
 *
 * @apiParam {String} name 电影名字.
 * @apiParam {Number} year 电影上映时间.
 * @apiParam {String} area 区域.
 * @apiParam {String} img Users unique ID.
 * @apiParam {String} filmType 电影类型.
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 */
router.post('/add',(req,res)=>{
   //接收前端传来的数据
   let {name,year,area,img,filmType} = req.body
   //处理数据 插入到数据库
   insertFilm({name,year,area,img,filmType})
   .then(()=>{res.send({err:0,msg:'插入成功'})})// 返回成功数据
   .catch((err)=>{
      console.log(err);   
     res.send({err:-1,msg:'插入失败请重试'})})// 返回错误数据
})
// 2.查询全部电影资源 
/**
 * @api {post} /admin/film/infos  查询全部
 * @apiName infos
 * @apiGroup Film
 *
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 * @apiSuccess {Array} list  查询到的数据.
 */
router.post('/infos',(req,res)=>{
   findFilm()
   .then((infos)=>{res.send({list:infos,err:0,msg:'查询成功'})})
   .catch((err)=>{res.send({err:-1,msg:'查询失败请重试'})})
 })

 // 3. 删除电影资源
 /**
 * @api {post} /admin/film/del  删除资源
 * @apiName del
 * @apiGroup Film
 *
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 */
router.post('/del',(req,res)=>{
   // 获取要删除数据的id
   let {_id} = req.body
   delFilm(_id)
   .then(()=>{res.send({err:0,msg:'删除成功'})})
   .catch((err)=>{res.send({err:-1,msg:'删除失败请重试'})})
 
 })
 // 4. 修改数据
  /**
 * @api {post} /admin/film/update  更新资源
 * @apiName update
 * @apiGroup Film
 *
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 */
router.post('/update',(req,res)=>{
   // 获取修改数据的参数
   let {_id,name,price,img,desc,foodType} = req.body 
   console.log({_id,name,price,img,desc,foodType})
   updateFilm(_id,{name,price,img,desc,foodType})
   .then(()=>{res.send({err:0,msg:'修改成功'})})
   .catch((err)=>{res.send({err:-1,msg:'修改失败请重试'})})
 })
 // 分页查询
   /**
 * @api {post} /admin/film/getInfos  分页查询
 * @apiName getInfos
 * @apiGroup Film
 *
 * @apiParam {Number} page 查询的第几页数据.
 * @apiParam {Number} pageSize 每页数据数量.
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 * @apiSuccess {Array} list  查询到的数据.
 */
router.post('/getInfos',(req,res)=>{
   let page = req.body.page||1 //查询的第几页数据
   let pageSize = req.body.pageSize ||2 //每页几条数据
   findFilmByPage(page,pageSize)
   .then((data)=>{
      console.log(data)
      let {result,allCount}=data 
     res.send({err:0,msg:'查询成功',list:result,allCount})
   })
   .catch((err)=>{res.send({err:-1,msg:'查询失败请重试'})})
 })
 
 // 分类查询  
 // 分类查询的数据也可能很多 需要和分页查询做关联
    /**
 * @api {post} /admin/film/getInfosByType  分类查询
 * @apiName getInfosByType
 * @apiGroup Film
 *
 * @apiParam {String} filmType 电影类型.
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 * @apiSuccess {Array} list  查询到的数据.
 */
 router.post('/getInfosByType',(req,res)=>{
   let {filmType} = req.body 
   findFilmByType,(filmType)
   .then((data)=>{
    res.send({err:0,msg:'查询成功',list:data})
  })
  .catch((err)=>{res.send({err:-1,msg:'查询失败请重试'})})
 
 })
 // 模糊查询 关键字查询
 // 也要和分页做关联
     /**
 * @api {post} /admin/film/getInfosByKw  模糊查询
 * @apiName getInfosByKw
 * @apiGroup Film
 *
 * @apiParam {String} kw 关键字.
 *
 * @apiSuccess {String} err 状态码r.
 * @apiSuccess {String} msg  信息提示.
 * @apiSuccess {Array} list  查询到的数据.
 */
 router.post('/getInfosByKw',(req,res)=>{
   let {kw} = req.body ||''
   findFilmByKw(kw)
   .then((data)=>{
     res.send({err:0,msg:'查询成功',list:data})
   })
   .catch((err)=>{res.send({err:-1,msg:'查询失败请重试'})})
 })
 
module.exports = router;